// 页面加载完成后执行
$(document).ready(function() {
    loadSystemMessages();
    loadMessageTemplates();
});

// 加载系统消息列表
function loadSystemMessages() {
    $.get('/admin/notifications/system')
        .done(function(data) {
            let html = '';
            data.forEach(function(message) {
                html += `
                    <tr>
                        <td>${message.title}</td>
                        <td>${message.content}</td>
                        <td>${formatReceiverType(message.receiverType)}</td>
                        <td>${formatSendStatus(message.isSent)}</td>
                        <td>${formatDateTime(message.createTime)}</td>
                        <td>
                            ${message.isSent === 0 ? 
                                `<button class="btn btn-sm btn-success" onclick="sendMessage(${message.id})">发送</button>` : 
                                ''}
                            <button class="btn btn-sm btn-danger" onclick="deleteMessage(${message.id})">删除</button>
                        </td>
                    </tr>
                `;
            });
            $('#messageTableBody').html(html);
        })
        .fail(function(error) {
            showError('加载系统消息失败');
        });
}

// 加载消息模板列表
function loadMessageTemplates() {
    $.get('/admin/notifications/templates')
        .done(function(data) {
            let html = '';
            data.forEach(function(template) {
                html += `
                    <tr>
                        <td>${template.templateCode}</td>
                        <td>${template.templateName}</td>
                        <td>${template.title}</td>
                        <td>${template.content}</td>
                        <td>${formatTemplateType(template.type)}</td>
                        <td>
                            <div class="custom-control custom-switch">
                                <input type="checkbox" class="custom-control-input" 
                                    id="templateStatus${template.id}" 
                                    ${template.status === 1 ? 'checked' : ''}
                                    onchange="updateTemplateStatus(${template.id}, this.checked)">
                                <label class="custom-control-label" for="templateStatus${template.id}"></label>
                            </div>
                        </td>
                        <td>
                            <button class="btn btn-sm btn-primary" onclick="editTemplate(${template.id})">编辑</button>
                            <button class="btn btn-sm btn-danger" onclick="deleteTemplate(${template.id})">删除</button>
                        </td>
                    </tr>
                `;
            });
            $('#templateTableBody').html(html);
        })
        .fail(function(error) {
            showError('加载消息模板失败');
        });
}

// 显示创建消息模态框
function showCreateMessageModal() {
    $('#createMessageForm')[0].reset();
    $('#createMessageModal').modal('show');
}

// 创建系统消息
function createMessage() {
    const formData = getFormData('#createMessageForm');
    
    $.ajax({
        url: '/admin/notifications/system',
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify(formData),
        success: function(response) {
            $('#createMessageModal').modal('hide');
            showSuccess('消息创建成功');
            loadSystemMessages();
        },
        error: function(error) {
            showError('创建消息失败');
        }
    });
}

// 发送消息
function sendMessage(id) {
    $.post(`/admin/notifications/${id}/send`)
        .done(function(response) {
            showSuccess('消息发送成功');
            loadSystemMessages();
        })
        .fail(function(error) {
            showError('发送消息失败');
        });
}

// 删除消息
function deleteMessage(id) {
    if (confirm('确定要删除这条消息吗？')) {
        $.ajax({
            url: `/admin/notifications/${id}`,
            type: 'DELETE',
            success: function(response) {
                showSuccess('消息删除成功');
                loadSystemMessages();
            },
            error: function(error) {
                showError('删除消息失败');
            }
        });
    }
}

// 显示创建模板模态框
function showCreateTemplateModal() {
    $('#templateForm')[0].reset();
    $('#templateModal').modal('show');
}

// 编辑模板
function editTemplate(id) {
    $.get(`/admin/notifications/templates/${id}`)
        .done(function(template) {
            const form = $('#templateForm');
            form.find('[name=id]').val(template.id);
            form.find('[name=templateCode]').val(template.templateCode);
            form.find('[name=templateName]').val(template.templateName);
            form.find('[name=title]').val(template.title);
            form.find('[name=content]').val(template.content);
            form.find('[name=type]').val(template.type);
            $('#templateModal').modal('show');
        })
        .fail(function(error) {
            showError('加载模板详情失败');
        });
}

// 保存模板
function saveTemplate() {
    const formData = getFormData('#templateForm');
    const isEdit = formData.id ? true : false;
    
    $.ajax({
        url: '/admin/notifications/templates' + (isEdit ? `/${formData.id}` : ''),
        type: isEdit ? 'PUT' : 'POST',
        contentType: 'application/json',
        data: JSON.stringify(formData),
        success: function(response) {
            $('#templateModal').modal('hide');
            showSuccess(isEdit ? '模板更新成功' : '模板创建成功');
            loadMessageTemplates();
        },
        error: function(error) {
            showError(isEdit ? '更新模板失败' : '创建模板失败');
        }
    });
}

// 更新模板状态
function updateTemplateStatus(id, status) {
    $.ajax({
        url: `/admin/notifications/templates/${id}/status`,
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify({ status: status ? 1 : 0 }),
        success: function(response) {
            showSuccess('状态更新成功');
        },
        error: function(error) {
            showError('更新状态失败');
            // 恢复开关状态
            $(`#templateStatus${id}`).prop('checked', !status);
        }
    });
}

// 删除模板
function deleteTemplate(id) {
    if (confirm('确定要删除这个模板吗？')) {
        $.ajax({
            url: `/admin/notifications/templates/${id}`,
            type: 'DELETE',
            success: function(response) {
                showSuccess('模板删除成功');
                loadMessageTemplates();
            },
            error: function(error) {
                showError('删除模板失败');
            }
        });
    }
}

// 格式化接收者类型
function formatReceiverType(type) {
    const types = {
        'ALL': '所有用户',
        'RESIDENT': '居民',
        'COLLECTOR': '回收员'
    };
    return types[type] || type;
}

// 格式化发送状态
function formatSendStatus(status) {
    return status === 1 ? 
        '<span class="badge badge-success">已发送</span>' : 
        '<span class="badge badge-warning">未发送</span>';
}

// 格式化模板类型
function formatTemplateType(type) {
    const types = {
        'SYSTEM': '系统公告',
        'USER': '用户消息'
    };
    return types[type] || type;
}

// 格式化日期时间
function formatDateTime(datetime) {
    return datetime ? new Date(datetime).toLocaleString() : '';
}

// 获取表单数据
function getFormData(formSelector) {
    const formData = {};
    $(formSelector).serializeArray().forEach(function(item) {
        formData[item.name] = item.value;
    });
    return formData;
}

// 显示成功提示
function showSuccess(message) {
    Swal.fire({
        icon: 'success',
        title: '成功',
        text: message,
        timer: 2000,
        showConfirmButton: false
    });
}

// 显示错误提示
function showError(message) {
    Swal.fire({
        icon: 'error',
        title: '错误',
        text: message
    });
} 